
package com.cehome.cloudbox.service;
import com.cehome.cloudbox.doman.dto.ProcCallBackParamDto;
import com.cehome.cloudbox.doman.dto.ProcStateDto;

import java.util.List;

/**
 * <p>
 * 流程共通 服务类
 * </p>
 */
public interface IProcCommonService {

    /**
     * 获取用户IDList
     *
     * @param data        数据
     * @param applyUserId 申请人ID
     * @return 用户IDList
     */
    List<String> getUserIdList(String data, String applyUserId);

    /**
     * 添加任务处理意见
     *
     * @param taskId      任务ID
     * @param procIncId   流程实例ID
     * @param commentType 意见类型
     * @param message     意见消息
     * @param userId      用户ID
     */
    void addTaskHandleComment(String taskId, String procIncId, String commentType, String message, String userId);

    /**
     * 获取流程实例状态
     *
     * @param procInsId 流程实例ID
     * @return 流程实例状态
     */
    ProcStateDto procIncState(String procInsId);

    /**
     * 业务回调方法
     *
     * @param paramDto     请求参数
     * @param baseUrl      基准URL
     * @param relativePath 相对URL
     */
    void callBack(ProcCallBackParamDto paramDto, String baseUrl, String relativePath);

    /**
     * 根据流程编码创建流程流水单号
     *
     * @param procCode 流程编码
     * @return 流程流水单号
     */
    String createProcSerialNoByProcCode(String procCode);

}
